fix: try merging on interleaving list of dict #8652
+996
−5
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Which issue does this PR close?
Rationale for this change
Implement custom interleaving logic for nested data types that have dictionary. Current main branch uses
interleave_fallbackwhich will concat the dictionaries even if they are logically equal (but pointing to different address). There are 2 approaches to work around this:interleave_fallbackreturns error in case dictionary overflow, and then try merging the dictionary and retry.The first solution may provides wider support for any nested data types which contains dictionary (i.e list<struct<list>> )
What changes are included in this PR?
Special interleave handling for specific data types:
Are these changes tested?
Last benchmark